package com.yunxi.service.localService.sto;

import com.github.pagehelper.PageInfo;
import com.yunxi.core.service.IServicePlus;
import com.yunxi.model.sto.VehicleOffline;
import com.yunxi.otd.pojo.VehicleCanChangePlanQueryVO;
import com.yunxi.otd.pojo.VehicleCanChangePlanVO;
import com.yunxi.sto.pojo.VehicleOfflineShareReqVO;
import com.yunxi.sto.pojo.VehicleOfflineShareRespVO;
import com.yunxi.sto.pojo.VehicleOfflineVO;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 车辆下线数据 服务类
 * </p>
 *
 * @author caoYong
 * @since 2019-05-21
 */
public interface VehicleOfflineService extends IServicePlus<VehicleOffline> {

    void updateCarTraceInfo(Map<String, Object> map);

    VehicleOffline selectCarByPlanNo(String planNo);

    VehicleOffline selectCarByVin(String vin);

    PageInfo selectCanChangePlan(VehicleCanChangePlanQueryVO queryVO, Integer pageNum, Integer pageSize);

    VehicleCanChangePlanVO selectCanChangePlanByPlanNo(String planNo);

    VehicleOfflineVO getDetailById(String id);

    void updateByVin(VehicleOfflineVO voo);

    int removeVehicleCarByPlanNo(String planNo);

    List<String> getVinList(VehicleOfflineVO vehicleOfflineVO);

    /**
     * 通过VIN码查询物料编码
     * @param vin
     * @return
     */
    String getMatnrCodeByVin(String vin);

    /**
     * 共享车查询
     * @param vo
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageInfo<VehicleOfflineShareRespVO> queryShareVehicle(VehicleOfflineShareReqVO vo, int pageNum, int pageSize);

    void putVehicle(String vin, int hireStatus);

    VehicleOffline getByVin(String vin);

    VehicleOfflineVO getVoByVin(String vin);
}
